/** @jsxImportSource @emotion/react */
import * as React from "react";
import {
  Text,
  useTheme,
  Container,
  Button,
  SuffixInput,
  IconArrowRight,
  Input,
  Select,
  InputDatalist, CheckSwitch,
  ComboBoxDatalist, InputLine, LineColumn,
  CommitInput
} from "customize-easy-ui-component";
import { DialogEnterReturn } from "../../context/DialogEnterReturn";
//import queryString from "querystring";
import {useCommnBaseParm, CommnBase} from "./CommnBase";

const queryString = require('query-string');
export const 锅炉结构形式=['锅壳','水管','盘管','其他'];
export const 加热方式s=['燃煤','燃油','燃气','电加热','余热',"燃生物质",'其他'];
export const 燃料种类=['无烟煤','烟煤','褐煤','煤矸石','柴油','重油','渣油','天然气','城市煤气','高炉煤气','电加热','余热','生物质','黑液','垃圾','醇基燃料','其他'];
export const 燃烧方式=['层式燃烧','悬浮燃烧','沸腾燃烧','气化燃烧','余热','其他'];
export const 水循环方式=['自然循环','直流','贯流','强制循环'];     //数据较少！
export const 装置型式s=['整组装','散装'];
export const 补给水处理方式=['其他'];
export const 出渣方式=['其他'];
export const 除氧方式=['其他'];
export const 工作介质s=['其他'];
export const 锅炉安装情况=['其他'];
export const 锅炉房类型=['其他'];
export const 汽水分离方式=['其他'];
export const 锅炉用途=['其他'];
export const 过热蒸汽调温方式=['其他'];
export const 予热器结构形式=['其他'];
export const 能效测试标志=['余热锅炉','电加热锅炉','电站锅炉','启动锅炉','其他'];
export const 耐压试验介质=['其他'];
export const 燃烧器布置方式=['其他'];
export const 低位发热值单位=['大卡','卡','千卡','MJ/kg'];     //没有效数据
export const 省煤器结构形式=['其他'];
export const 使用承压状态=["承压","在用","报停",'良好',"未投入使用",'备用'];
export const 受热面布置方式=['其他'];
export const 水处理方式=["锅内","锅外","无水处理","锅内加药","锅外水处理","无","二级除盐","一级除盐","锅外软化"];
export const 水处理运行模式=["自动","人工控制","无"];
export const 水源种类=['其他'];
export const 消烟除尘式=["水幕除尘","旋风除尘","电气除尘","布袋除尘","水膜","麻石除尘"];
export const 蒸汽用途s=['非汽轮机用','汽轮机用'];


interface 锅炉props {
  id?: string;
  readOnly?: boolean;
  editable?: boolean;
  //当前设备数据(确认修改之后)
  eqp?:any;
  //去修改设备数据
  mutationFunc: (...args: any[]) => any;
}
//可嵌套的编辑器；传递保存变动数据。 中文可用，但是引用时刻会告警徐改成英文<As...>
export const 锅炉: React.FunctionComponent<锅炉props> = (
    {
       readOnly,
       id,
       editable,
       eqp=null,    //从好几代祖先前的DetailedGuide在graphQL获得后端服务器数据层层传递下来的。
      mutationFunc,
     }) =>
{
  //const qs= queryString.parse(window.location.search);
  const theme = useTheme();
  const {save}= window.history.state?.state??{};      //通用伪对话框传递格式
  //临时保存未发送后端的正在编辑输入的内容， 用在UnitOrChoose离开后再次返回场景，目的是路由切换回来恢复刚才的编辑数据。
  //edt是代表当前编辑的， ndt是跨越组件伪对话框共享临时存储的， eqp是后端服务器给的。
  //const [edt, setEdt] =React.useState(ndt&&qs?.emodel==='电梯'&&ndt.id===eqp.id? ndt:eqp);
  const edt = save?  save : eqp;

  const [power, setPower] = React.useState(edt.power);
  const [form, setForm] = React.useState(edt.form);
  const [fuel, setFuel] = React.useState(edt.fuel);   //IDEA切换大小写的快捷键是ctrl+shift+u
  const [bmod, setBmod] = React.useState(edt.bmod);
  const [wall, setWall] = React.useState(edt.wall);
  const [pres, setPres] = React.useState(edt.pres);
  const [asemb, setAsemb] = React.useState(edt.asemb);

  //监察参数 : 不用JSON.parse无法取出,保存对象直接发给后端数据库,存储String格式不一样;
  const  svp = edt?.svp;

  const [加热方式, set加热方式] = React.useState(svp?.加热方式);
  const [水循环, set水循环] = React.useState(svp?.水循环);
  //const [装置型式, set装置型式] = React.useState(edt.asemb? '整组装' : '散装');  变换成 edt.asemb
  const [工作介质, set工作介质] = React.useState(svp?.工作介质);
  const [安装况, set安装况] = React.useState(svp?.安装况);
  const [炉房型, set炉房型] = React.useState(svp?.炉房型);
  const [汽水分离, set汽水分离] = React.useState(svp?.汽水分离);
  const [用途, set用途] = React.useState(svp?.用途);
  const [主体材料, set主体材料] = React.useState(svp?.主体材料);
  const [过热调温, set过热调温] = React.useState(svp?.过热调温);
  const [介名, set介名] = React.useState(svp?.介名);
  const [介牌号, set介牌号] = React.useState(svp?.介牌号);
  const [介许温, set介许温] = React.useState(svp?.介许温);
  const [予热器构, set予热器构] = React.useState(svp?.予热器构);
  const [燃器布置, set燃器布置] = React.useState(svp?.燃器布置);
  const [烧设备, set烧设备] = React.useState(svp?.烧设备);
  const [设标准, set设标准] = React.useState(svp?.设标准);
  const [设出口温, set设出口温] = React.useState(svp?.设出口温);
  const [设出口压, set设出口压] = React.useState(svp?.设出口压);
  const [设规范, set设规范] = React.useState(svp?.设规范);
  const [设挥发, set设挥发] = React.useState(svp?.设挥发);
  const [设热效, set设热效] = React.useState(svp?.设热效);
  const [设低热, set设低热] = React.useState(svp?.设低热);
  const [设低热位, set设低热位] = React.useState(svp?.设低热位);
  const [状态, set状态] = React.useState(svp?.状态);
  const [水处式, set水处式] = React.useState(svp?.水处式);
  const [水处设型, set水处设型] = React.useState(svp?.水处设型);
  const [制水能力, set制水能力] = React.useState(svp?.制水能力);
  //const [水处造单, set水处造单] = React.useState((qs?.水处造单&&JSON.parse(qs?.水处造单 as string)) || svp?.水处造单);
  const [水处造单, set水处造单] = React.useState(svp?.水处造单);
  const [水源种, set水源种] = React.useState(svp?.水源种);
  const [烟尘式, set烟尘式] = React.useState(svp?.烟尘式);
  const [许用压, set许用压] = React.useState(svp?.许用压);
  const [有载牌号, set有载牌号] = React.useState(svp?.有载牌号);
  const [许工温, set许工温] = React.useState(svp?.许工温);
  const [再热调温, set再热调温] = React.useState(svp?.再热调温);
  const [蒸汽用途, set蒸汽用途] = React.useState(svp?.蒸汽用途);
  const [制造范, set制造范] = React.useState(svp?.制造范);

  const  pa = edt?.pa;
  const [饱和温度, set饱和温度] = React.useState(pa?.饱和温度);
  const [补给水, set补给水] = React.useState(pa?.补给水);
  const [出口温, set出口温] = React.useState(pa?.出口温);
  const [出口压, set出口压] = React.useState(pa?.出口压);
  const [出热量, set出热量] = React.useState(pa?.出热量);
  const [出水温度, set出水温度] = React.useState(pa?.出水温度);
  const [出渣, set出渣] = React.useState(pa?.出渣);
  const [除氧, set除氧] = React.useState(pa?.除氧);
  const [司炉数, set司炉数] = React.useState(pa?.司炉数);
  const [电站情况, set电站情况] = React.useState(pa?.电站情况);
  const [额定出力, set额定出力] = React.useState(pa?.额定出力);
  const [给水温, set给水温] = React.useState(pa?.给水温);
  const [给水压, set给水压] = React.useState(pa?.给水压);
  const [工作温度, set工作温度] = React.useState(pa?.工作温度);
  const [筒工作压, set筒工作压] = React.useState(pa?.筒工作压);
  const [过热温, set过热温] = React.useState(pa?.过热温);
  const [过热压, set过热压] = React.useState(pa?.过热压);
  const [回水温, set回水温] = React.useState(pa?.回水温);
  const [介出温, set介出温] = React.useState(pa?.介出温);
  const [介验日, set介验日] = React.useState(pa?.介验日);
  const [试验介质, set试验介质] = React.useState(pa?.试验介质);
  const [压验日, set压验日] = React.useState(pa?.压验日);
  const [试压力, set试压力] = React.useState(pa?.试压力);
  const [能效测标, set能效测标] = React.useState(pa?.能效测标);
  const [能效评价, set能效评价] = React.useState(pa?.能效评价);
  const [省煤构, set省煤构] = React.useState(pa?.省煤构);
  const [蒸发量, set蒸发量] = React.useState(pa?.蒸发量);
  const [使用年限, set使用年限] = React.useState(pa?.使用年限);
  const [使用压力, set使用压力] = React.useState(pa?.使用压力);
  const [有过热器, set有过热器] = React.useState(pa?.有过热器);
  const [受热布置, set受热布置] = React.useState(pa?.受热布置);
  const [水处模式, set水处模式] = React.useState(pa?.水处模式);
  const [水压试日, set水压试日] = React.useState(pa?.水压试日);
  const [水压试力, set水压试力] = React.useState(pa?.水压试力);
  const [水油联话, set水油联话] = React.useState(pa?.水油联话);
  const [水油联人, set水油联人] = React.useState(pa?.水油联人);
  const [水员数, set水员数] = React.useState(pa?.水员数);
  const [液验介, set液验介] = React.useState(pa?.液验介);
  const [液验日, set液验日] = React.useState(pa?.液验日);
  const [液验压, set液验压] = React.useState(pa?.液验压);
  const [再热出温, set再热出温] = React.useState(pa?.再热出温);
  const [再热入温, set再热入温] = React.useState(pa?.再热入温);
  const [再热出压, set再热出压] = React.useState(pa?.再热出压);
  const [再热入压, set再热入压] = React.useState(pa?.再热入压);
  const [再汽流, set再汽流] = React.useState(pa?.再汽流);
  const [直启动流, set直启动流] = React.useState(pa?.直启动流);
  const [直启动压, set直启动压] = React.useState(pa?.直启动压);
  const [最连蒸, set最连蒸] = React.useState(pa?.最连蒸);
  //const [微压炉, set微压炉] = React.useState(pa?.微压炉);
  //肢解可复用的共同组件模式： Hook + 配套的组件。
  const cbp =useCommnBaseParm(eqp, svp, pa, save);

  //不用JSON.stringify保存到数据库格式不一样，对象直接转String，前端无法取出。必须用json格式{"制造国":"地","年限":"12"}
  //合并下级组件(可多个的)以及自己的各字段状态：合并成一个eqp对象，准备给保存按钮{实际还要经过setEqp再传给更高一级组件保存}。
  async function confirmation() {
    const newdat={ ...eqp,  ...cbp.out,
      wall,power,form,fuel,pres,bmod,asemb,
      svp: { ...cbp.svpO,
        加热方式,水循环,工作介质,安装况,炉房型,汽水分离,用途,主体材料,过热调温,介名,介牌号,介许温,予热器构,
        燃器布置,烧设备,设标准,设出口温,设出口压,设规范,设挥发,设热效,设低热,设低热位,状态,水处式,水处设型,制水能力,
        水处造单,水源种,烟尘式,许用压,有载牌号,许工温,再热调温,蒸汽用途,制造范,
        }
      ,
      pa: { ...cbp.paO,
        饱和温度,补给水,出口温,出口压,出热量,出水温度,出渣,除氧,司炉数,电站情况,额定出力,给水温,给水压,工作温度,筒工作压,
        过热温,过热压,回水温,介出温,介验日,试验介质,压验日,试压力,能效测标,能效评价,省煤构,蒸发量,使用年限,使用压力,
        有过热器,受热布置,水处模式,水压试日,水压试力,水油联话,水油联人,水员数,液验介,液验日,液验压,再热出温,再热入温,
        再热出压,再热入压,再汽流,直启动流,直启动压,最连蒸,
        }

    };

    return newdat;
  }

  //console.log("参数parse JSON 前面edt=",edt);

  return (
    <div
      css={{
        [theme.mediaQueries.md]: {
          height: "auto",
          display: "block"
        }
      }}
    >
      <hr/>
      <Text
        css={{
          flex: 1,
          textAlign: "center",
          [theme.mediaQueries.md]: {
            textAlign: "left"
          }
        }}
        wrap={false}
        variant="h5"
        gutter={false}
      >
        {eqp.cod} 锅炉技术参数
      </Text>

      <div
        css={{
          flex: 1,
          [theme.mediaQueries.md]: {
            flex: "none"
          }
        }}
      >
        <div>
          <Container>
            <div
              css={{
                paddingTop: theme.spaces.lg,
                paddingBottom: theme.spaces.lg
              }}
            >

            <CommnBase cbp={cbp} id={id!}  confirmation={confirmation}/>

            <Text variant="h5">锅炉参数</Text>
            <LineColumn >
              <InputLine label={`额定功率(MW)/蒸发量(T/H):`}>
                <CommitInput  value={ power || ''} type="number"
                              onSave={txt => setPower(txt||undefined) } />
              </InputLine>
              <InputLine label={`锅炉结构形式:`}>
                <ComboBoxDatalist  value={ form || ''}
                                   onListChange={v => setForm( v||undefined ) }
                                   datalist={锅炉结构形式}  />
              </InputLine>
              <InputLine label={`加热方式:`}>
                <Select inputSize="md"  value={ 加热方式 || ''}
                        onChange={e => set加热方式( e.currentTarget.value||undefined ) }
                >
                  <option></option>
                  { 加热方式s.map((one,i) => (
                      <option key={i}>{one}</option>
                  )) }
                </Select>
              </InputLine>
              <InputLine label={`燃料种类:`}>
                <ComboBoxDatalist  value={ fuel || ''}
                                   onListChange={v => setFuel( v||undefined ) }
                                   datalist={燃料种类}  />
              </InputLine>
              <InputLine label={`燃烧方式:`}>
                <ComboBoxDatalist  value={ bmod || ''}
                                   onListChange={v => setBmod( v||undefined ) }
                                   datalist={燃烧方式}  />
              </InputLine>
              <InputLine label={`水循环方式:`}>
                <Select inputSize="md"  value={ 水循环 || ''}
                        onChange={e => set水循环( e.currentTarget.value||undefined ) }
                >
                  <option></option>
                  { 水循环方式.map((one,i) => (
                      <option key={i}>{one}</option>
                  )) }
                </Select>
              </InputLine>
              <InputLine label={`装置型式:`}>
                <Select inputSize="md"  value={ asemb? '整组装' : '散装'}
                        onChange={e => setAsemb( e.currentTarget.value==='整组装' ) }
                >
                  { 装置型式s.map((one,i) => (
                      <option key={i}>{one}</option>
                  )) }
                </Select>
              </InputLine>
              <InputLine label={'是否有炉墙？'}>
                <CheckSwitch
                    checked= {wall || false}
                    onChange={e => setWall(!wall) }
                />
              </InputLine>
              <InputLine label={`饱和温度：`}>
                <SuffixInput  type="number"  value={ 饱和温度 || ''}
                    onSave={txt=> set饱和温度(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`补给水处理方式:`}>
                <InputDatalist
                    value={ 补给水 || ''}
                    onListChange={v => set补给水(v ||undefined)}
                    datalist={补给水处理方式}
                />
              </InputLine>
              <InputLine label={`出口工作温度:`}>
                <SuffixInput     value={ 出口温 || '' }
                     onSave={txt=> set出口温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`出口工作压力:`}>
                <SuffixInput    value={ 出口压 || '' }
                    onSave={txt=> set出口压(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`出热量:`}>
                <SuffixInput    value={ 出热量 || '' }
                    onSave={txt=> set出热量(txt||undefined)}
                >大卡</SuffixInput>
              </InputLine>
              <InputLine label={`出水温度:`}>
                <SuffixInput   type="number"  value={ 出水温度 || ''}
                    onSave={txt=> set出水温度(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`出渣方式:`}>
                <InputDatalist
                    value={ 出渣 || ''}
                    onListChange={v => set出渣(v ||undefined)}
                    datalist={出渣方式}
                />
              </InputLine>
              <InputLine label={`除氧方式:`}>
                <InputDatalist
                    value={ 除氧 || ''}
                    onListChange={v => set除氧(v ||undefined)}
                    datalist={除氧方式}
                />
              </InputLine>
              <InputLine label={`单位司炉数量:`}>
                <SuffixInput   type="number"  value={ 司炉数 || ''}
                    onSave={txt=> set司炉数(txt||undefined)}
                >个</SuffixInput>
              </InputLine>
              <InputLine label={`电站锅炉其他情况:`}>
                <CommitInput  value={ 电站情况 || ''}
                              onSave={txt => set电站情况(txt||undefined) } />
              </InputLine>
              <InputLine label={`额定出力(动态计算值）:`}>
                <SuffixInput   type="number"   value={ 额定出力 || ''}
                    onSave={txt=> set额定出力(txt||undefined)}
                >t/h</SuffixInput>
              </InputLine>
              <InputLine label={`额定工作压力:`}>
                <SuffixInput  type="number"   value={ pres || ''}
                    onSave={txt=> setPres(txt||undefined)}
                >兆帕</SuffixInput>
              </InputLine>
              <InputLine label={`给水温度:`}>
                <SuffixInput    value={ 给水温 || ''}
                    onSave={txt=> set给水温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`给水压力:`}>
                <SuffixInput   value={ 给水压 || ''}
                    onSave={txt=> set给水压(txt||undefined)}
                >兆帕</SuffixInput>
              </InputLine>
              <InputLine label={`工作介质:`}>
                <InputDatalist
                    value={ 工作介质 || ''}
                    onListChange={v => set工作介质(v ||undefined)}
                    datalist={工作介质s}
                />
              </InputLine>
              <InputLine label={`工作温度:`}>
                <SuffixInput    value={ 工作温度 || ''}
                    onSave={txt=> set工作温度(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`锅炉安装情况:`}>
                <InputDatalist
                    value={ 安装况 || ''}
                    onListChange={v => set安装况(v ||undefined)}
                    datalist={锅炉安装情况}
                />
              </InputLine>
              <InputLine label={`锅炉房类型:`}>
                <InputDatalist
                    value={ 炉房型 || ''}
                    onListChange={v => set炉房型(v ||undefined)}
                    datalist={锅炉房类型}
                />
              </InputLine>
              <InputLine label={`锅炉汽水分离方式:`}>
                <InputDatalist
                    value={ 汽水分离 || ''}
                    onListChange={v => set汽水分离(v ||undefined)}
                    datalist={汽水分离方式}
                />
              </InputLine>
              <InputLine label={`锅炉用途:`}>
                <InputDatalist
                    value={ 用途 || ''}
                    onListChange={v => set用途(v ||undefined)}
                    datalist={锅炉用途}
                />
              </InputLine>
              <InputLine label={`锅炉主体材料:`}>
                <CommitInput  value={ 主体材料 || ''}
                              onSave={txt => set主体材料(txt||undefined) } />
              </InputLine>
              <InputLine label={`锅筒工作压力:`}>
                <SuffixInput   value={ 筒工作压 || ''}
                    onSave={txt=> set筒工作压(txt||undefined)}
                >兆帕</SuffixInput>
              </InputLine>
              <InputLine label={`过热器出口温度:`}>
                <SuffixInput    value={ 过热温 || ''}
                    onSave={txt=> set过热温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`过热器出口压力:`}>
                <SuffixInput   value={ 过热压 || ''}
                   onSave={txt=> set过热压(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`过热蒸汽调温方式:`}>
                <InputDatalist
                    value={ 过热调温 || ''}
                    onListChange={v => set过热调温(v ||undefined)}
                    datalist={过热蒸汽调温方式}
                />
              </InputLine>
              <InputLine label={`回水温度:`}>
                <SuffixInput    value={ 回水温 || ''}
                    onSave={txt=> set回水温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`介质出口温度:`}>
                <SuffixInput    value={ 介出温 || ''}
                    onSave={txt=> set介出温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`介质化验日期:`}>
                <Input type='date'  value={ 介验日  || ''}
                       onChange={e => set介验日( e.currentTarget.value||undefined ) } />
              </InputLine>
              <InputLine label={`介质名称:`}>
                <CommitInput  value={ 介名 || ''}
                              onSave={txt => set介名(txt||undefined) } />
              </InputLine>
              <InputLine label={`介质牌号:`}>
                <CommitInput  value={ 介牌号 || ''}
                              onSave={txt => set介牌号(txt||undefined) } />
              </InputLine>
              <InputLine label={`介质允许温度:`}>
                <SuffixInput  type="number"  value={ 介许温 || ''}
                    onSave={txt=> set介许温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`空气予热器结构形式:`}>
                <ComboBoxDatalist  value={ 予热器构 || ''}
                                   onListChange={v => set予热器构( v||undefined ) }
                                   datalist={予热器结构形式}  />
              </InputLine>
              <InputLine label={`耐压试验介质:`}>
                <ComboBoxDatalist  value={ 试验介质 || ''}
                                   onListChange={v => set试验介质( v||undefined ) }
                                   datalist={耐压试验介质}  />
              </InputLine>
              <InputLine label={`耐压试验日期:`}>
                <Input type='date'  value={ 压验日  || ''}
                       onChange={e => set压验日( e.currentTarget.value||undefined ) } />
              </InputLine>
              <InputLine label={`耐压试验压力:`}>
                <SuffixInput type="number"  value={ 试压力 || ''}
                    onSave={txt=> set试压力(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`能效测试标志:`}>
                <InputDatalist
                    value={ 能效测标 || ''}
                    onListChange={v => set能效测标(v ||undefined)}
                    datalist={能效测试标志}
                />
              </InputLine>
              <InputLine label={`能效评价:`}>
                <CommitInput  value={ 能效评价 || ''}
                              onSave={txt => set能效评价(txt||undefined) } />
              </InputLine>
              <InputLine label={`燃烧器布置方式:`}>
                <InputDatalist
                    value={ 燃器布置 || ''}
                    onListChange={v => set燃器布置(v ||undefined)}
                    datalist={燃烧器布置方式}
                />
              </InputLine>
              <InputLine label={`燃烧设备:`}>
                <CommitInput  value={ 烧设备 || ''}
                              onSave={txt => set烧设备(txt||undefined) } />
              </InputLine>
              <InputLine label={`设计标准:`}>
                <CommitInput  value={ 设标准 || ''}
                              onSave={txt => set设标准(txt||undefined) } />
              </InputLine>
              <InputLine label={`设计出口温度:`}>
                <SuffixInput   value={ 设出口温 || ''}
                    onSave={txt=> set设出口温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`设计出口压力:`}>
                <SuffixInput   value={ 设出口压 || ''}
                       onSave={txt=> set设出口压(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`设计规范:`}>
                <CommitInput  value={ 设规范 || ''}
                              onSave={txt => set设规范(txt||undefined) } />
              </InputLine>
              <InputLine label={`设计燃料可燃基挥发份:`}>
                <SuffixInput   value={ 设挥发 || ''}
                     onSave={txt=> set设挥发(txt||undefined)}
                >%</SuffixInput>
              </InputLine>
              <InputLine label={`设计热效率:`}>
                <SuffixInput   value={ 设热效 || ''}
                      onSave={txt=> set设热效(txt||undefined)}
                >%</SuffixInput>
              </InputLine>
              <InputLine label={`设计应用基低位发热值:`}>
                <CommitInput type="number" value={ 设低热 || ''}
                              onSave={txt => set设低热(txt||undefined) } />
              </InputLine>
              <InputLine label={`设计应用基低位发热值单位:`}>
                <Select inputSize="md"  value={ 设低热位 || ''}
                        onChange={e => set设低热位( e.currentTarget.value||undefined ) }
                >
                  <option></option>
                  { 低位发热值单位.map((one,i) => (
                      <option key={i}>{one}</option>
                  )) }
                </Select>
              </InputLine>
              <InputLine label={`省煤器结构形式:`}>
                <InputDatalist
                    value={ 省煤构 || ''}
                    onListChange={v => set省煤构(v ||undefined)}
                    datalist={省煤器结构形式}
                />
              </InputLine>
              <InputLine label={`实际蒸发量:`}>
                <SuffixInput type="number"  value={ 蒸发量 || ''}
                      onSave={txt=> set蒸发量(txt||undefined)}
                >t/h</SuffixInput>
              </InputLine>
              <InputLine label={`使用(承压)状态:`}>
                <InputDatalist
                    value={ 状态 || ''}
                    onListChange={v => set状态(v ||undefined)}
                    datalist={使用承压状态}
                />
              </InputLine>
              <InputLine label={`使用年限:`}>
                <SuffixInput type="number"  value={ 使用年限 || ''}
                      onSave={txt=> set使用年限(txt||undefined)}
                >年</SuffixInput>
              </InputLine>
              <InputLine label={`使用压力:`}>
                <SuffixInput  value={ 使用压力 || ''}
                      onSave={txt=> set使用压力(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={'是否有过热器？'}>
                <CheckSwitch  checked= {有过热器 || false}
                    onChange={e => set有过热器(!有过热器) } />
              </InputLine>
              <InputLine label={`受热面布置方式:`}>
                <InputDatalist  value={ 受热布置 || ''}
                    onListChange={v => set受热布置(v ||undefined)}
                    datalist={受热面布置方式} />
              </InputLine>
              <InputLine label={`水处理方式:`}>
                <InputDatalist  value={ 水处式 || ''}
                                onListChange={v => set水处式(v ||undefined)}
                                datalist={水处理方式} />
              </InputLine>
              <InputLine label={`水处理设备型号:`}>
                <CommitInput  value={ 水处设型 || ''}
                             onSave={txt => set水处设型(txt||undefined) } />
              </InputLine>
              <InputLine label={`水处理设备运行模式:`}>
                <InputDatalist  value={ 水处模式 || ''}
                                onListChange={v => set水处模式(v ||undefined)}
                                datalist={水处理运行模式} />
              </InputLine>
              <InputLine label={`水处理设备制水能力:`}>
                <SuffixInput   value={ 制水能力 || ''}
                    onSave={txt=> set制水能力(txt||undefined)}
                >t/h</SuffixInput>
              </InputLine>
              <InputLine label={`水处理设备制造单位:`}>
                {/*<UnitOrChoose id={水处造单?.id} name={水处造单?.name} emodel={'设备'} field={'水处造单'}
                              erurl={`/device/${id}?`}  autoFocus={!!qs?.水处造单 && qs.emodel==='设备'}
                              onCancel={() => { set水处造单(undefined) }}
                              onDialog={async () => { await setNdt(await confirmation()); } }
                />*/}
                <CommitInput  value={ 水处造单 || ''}
                              onSave={txt => set水处造单(txt||undefined) } />
              </InputLine>
              <InputLine label={`水压试验日期:`}>
                <Input type='date'  value={ 水压试日  || ''}
                       onChange={e => set水压试日( e.currentTarget.value||undefined ) } />
              </InputLine>
              <InputLine label={`水压试验压力:`}>
                <SuffixInput   value={ 水压试力 || ''}
                      onSave={txt=> set水压试力(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`水油联系电话:`}>
                <CommitInput value={ 水油联话 || ''}
                             onSave={txt => set水油联话(txt||undefined) } />
              </InputLine>
              <InputLine label={`水油联系人:`}>
                <CommitInput value={ 水油联人 || ''}
                             onSave={txt => set水油联人(txt||undefined) } />
              </InputLine>
              <InputLine label={`水源种类:`}>
                <InputDatalist  value={ 水源种 || ''}
                                onListChange={v => set水源种(v ||undefined)}
                                datalist={水源种类} />
              </InputLine>
              <InputLine label={`水质人员数量:`}>
                <SuffixInput type="number"  value={ 水员数 || ''}
                      onSave={txt=> set水员数(txt||undefined)}
                >个</SuffixInput>
              </InputLine>
              <InputLine label={`消烟除尘方式:`}>
                <InputDatalist  value={ 烟尘式 || ''}
                                onListChange={v => set烟尘式(v ||undefined)}
                                datalist={消烟除尘式} />
              </InputLine>
              <InputLine label={`许可使用压力:`}>
                <SuffixInput   value={ 许用压 || ''}
                    onSave={txt=> set许用压(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`液压试验介质:`}>
                <CommitInput value={ 液验介 || ''}
                             onSave={txt => set液验介(txt||undefined) } />
              </InputLine>
              <InputLine label={`液压试验日期:`}>
                <Input type='date'  value={ 液验日  || ''}
                       onChange={e => set液验日( e.currentTarget.value||undefined ) } />
              </InputLine>
              <InputLine label={`液压试验压力:`}>
                <SuffixInput   value={ 液验压 || ''}
                       onSave={txt=> set液验压(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`有机热载体牌号:`}>
                <CommitInput value={ 有载牌号 || ''}
                             onSave={txt => set有载牌号(txt||undefined) } />
              </InputLine>
              <InputLine label={`允许工作温度:`}>
                <SuffixInput   value={ 许工温 || ''}
                        onSave={txt=> set许工温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`再热器出口温度:`}>
                <SuffixInput type="number"  value={ 再热出温 || ''}
                      onSave={txt=> set再热出温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`再热器入口温度:`}>
                <SuffixInput type="number"  value={ 再热入温 || ''}
                       onSave={txt=> set再热入温(txt||undefined)}
                >℃</SuffixInput>
              </InputLine>
              <InputLine label={`再热器出口压力:`}>
                <SuffixInput type="number"  value={ 再热出压 || ''}
                     onSave={txt=> set再热出压(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`再热器入口压力:`}>
                <SuffixInput type="number"  value={ 再热入压 || ''}
                     onSave={txt=> set再热入压(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`再热蒸汽调温方式:`}>
                <CommitInput value={ 再热调温 || ''}
                             onSave={txt => set再热调温(txt||undefined) } />
              </InputLine>
              <InputLine label={`再热蒸汽流量:`}>
                <SuffixInput type="number"  value={ 再汽流 || ''}
                      onSave={txt=> set再汽流(txt||undefined)}
                >t/h</SuffixInput>
              </InputLine>
              <InputLine label={`蒸汽用途:`}>
                <Select inputSize="md"  value={ 蒸汽用途 || ''}
                        onChange={e => set蒸汽用途( e.currentTarget.value||undefined ) }
                >
                  <option></option>
                  { 蒸汽用途s.map((one,i) => (
                      <option key={i}>{one}</option>
                  )) }
                </Select>
              </InputLine>
              <InputLine label={`直流锅炉启动流量:`}>
                <SuffixInput type="number"  value={ 直启动流 || ''}
                   onSave={txt=> set直启动流(txt||undefined)}
                >t/h</SuffixInput>
              </InputLine>
              <InputLine label={`直流锅炉启动压力:`}>
                <SuffixInput type="number"  value={ 直启动压 || ''}
                   onSave={txt=> set直启动压(txt||undefined)}
                >Mpa</SuffixInput>
              </InputLine>
              <InputLine label={`制造规范:`}>
                <CommitInput value={ 制造范 || ''}
                             onSave={txt => set制造范(txt||undefined) } />
              </InputLine>
              <InputLine label={`最大连续蒸发量:`}>
                <SuffixInput   value={ 最连蒸 || ''}
                   onSave={txt=> set最连蒸(txt||undefined)}
                >t/h</SuffixInput>
              </InputLine>

            </LineColumn>

              <Text variant="h5">其它参数</Text>
              <LineColumn >
                {/*<InputLine label={'是否微压炉？'}>
                  <CheckSwitch checked= {微压炉 || false}
                      onChange={e => set微压炉(!微压炉) }
                  />
                </InputLine>*/}
              </LineColumn>

              <Button size="lg" intent="primary"  iconAfter={<IconArrowRight />}
                      css={{ marginTop: theme.spaces.sm, whiteSpace:'unset' }}
                      onPress={ async () => {
                        const eqpNew=await confirmation();
                        await mutationFunc(eqpNew);
                      } }
              > 确认修改检查并保存到后端
              </Button>
            </div>
          </Container>
        </div>
      </div>

    </div>
  );
};

